package com.spsoft.vatoutinv.service.vmsdifferentialcode;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spsoft.core.model.Result;
import com.spsoft.core.model.bo.TokenUser;
import com.spsoft.vatoutinv.entity.vmsdifferentialcode.VmsDifferentialCode;
import com.spsoft.vatoutinv.model.dto.vmsdifferentialcode.DifferentialCodeLogListDto;
import com.spsoft.vatoutinv.model.dto.vmsdifferentialcode.DifferentialCodeLogPageDto;
import com.spsoft.vatoutinv.model.dto.vmsdifferentialcode.DifferentialCodePageDto;
import com.spsoft.vatoutinv.model.vo.vmsdifferentialcode.DifferentialCodeLogPageVo;
import com.spsoft.vatoutinv.model.vo.vmsdifferentialcode.DifferentialCodePageVo;

import java.math.BigDecimal;

/**
 * @author wangy
 * @description 针对表【VMS_DIFFERENTIAL_CODE(差额征税编码信息管理)】的数据库操作Service
 * @createDate 2024-03-26 09:45:59
 */
public interface VmsDifferentialCodeService extends IService<VmsDifferentialCode> {

    /**
     * 根据机构 分页查询
     */
    Result<IPage<DifferentialCodePageVo>> page(DifferentialCodePageDto dto);

    /**
     * 根据机构 查询乐企接口 更新数据
     */
    Result<Object> getDifferentialCodeByLq(TokenUser tokenUser);

    /**
     * 根据机构查询 分页-获取记录
     */
    Result<IPage<DifferentialCodeLogPageVo>> logPage(DifferentialCodeLogPageDto dto);

    /**
     * 查询乐企获取记录结果
     */
    Result<IPage<DifferentialCodePageVo>> logDetail(DifferentialCodeLogListDto dto);

    /**
     * 校验机构的商品编码是否可以差额开票
     * @param sphfwssflhbbm 商品和服务税收分类合并编码
     * @param slv 税率
     * @param fppz 发票票种
     * @param cezslxdm 差额征税类型代码
     * @param deptCode 机构编码
     */
    Result<Object> checkDifferentialCode(String sphfwssflhbbm, BigDecimal slv, String fppz, String cezslxdm, String deptCode);
}
